import type { ExtensibleEntityDto, ExtensibleObject } from '@abp/ng.core';

export interface EquipmentCreateDto extends EquipmentCreateOrUpdateBase {
}

export interface EquipmentCreateOrUpdateBase extends ExtensibleObject {
  tenantId?: string;
  workCenterId?: string;
  name?: string;
  quantity: number;
  standardCapacity: number;
  code?: string;
  sourceType?: string;
  sourceKey?: string;
  sourceCreatedOn?: string;
  isDeleted: boolean;
  deleterId?: string;
  deletionTime?: string;
  lastModificationTime?: string;
  lastModifierId?: string;
  creationTime?: string;
  creatorId?: string;
}

export interface EquipmentDto extends ExtensibleEntityDto<string> {
  tenantId?: string;
  workCenterId?: string;
  workCenter: WorkCenterDto;
  name?: string;
  quantity: number;
  standardCapacity: number;
  code?: string;
  sourceType?: string;
  sourceKey?: string;
  sourceCreatedOn?: string;
  isDeleted: boolean;
  deleterId?: string;
  deletionTime?: string;
  lastModificationTime?: string;
  lastModifierId?: string;
  creationTime?: string;
  creatorId?: string;
  concurrencyStamp?: string;
}

export interface EquipmentUpdateDto extends EquipmentCreateOrUpdateBase {
  concurrencyStamp?: string;
}

export interface WorkCenterCreateDto extends WorkCenterCreateOrUpdateBase {
}

export interface WorkCenterCreateOrUpdateBase extends ExtensibleObject {
  tenantId?: string;
  name?: string;
  standardCapacity: number;
  code?: string;
  sourceType?: string;
  sourceKey?: string;
  sourceCreatedOn?: string;
  isDeleted: boolean;
  deleterId?: string;
  deletionTime?: string;
  lastModificationTime?: string;
  lastModifierId?: string;
  creationTime?: string;
  creatorId?: string;
}

export interface WorkCenterDto extends ExtensibleEntityDto<string> {
  tenantId?: string;
  name?: string;
  standardCapacity: number;
  code?: string;
  sourceType?: string;
  sourceKey?: string;
  sourceCreatedOn?: string;
  isDeleted: boolean;
  deleterId?: string;
  deletionTime?: string;
  lastModificationTime?: string;
  lastModifierId?: string;
  creationTime?: string;
  creatorId?: string;
  concurrencyStamp?: string;
}

export interface WorkCenterUpdateDto extends WorkCenterCreateOrUpdateBase {
  concurrencyStamp?: string;
}
